
package com.crowdfunding.circle.analyze.entity;

import java.util.Date;

import org.apache.commons.lang3.StringUtils;

/**
 * 项目类型对应的拆解项实体类
 *
 * @author 朱国军
 * @version 2016年07月03日 朱国军
 */
public class ProjectTypeVO {
    
    /** 项目类型ID */
    private String projectTypeId;
    
    /** 项目类型名称 */
    private String projectTypeName;
    
    /** 是否需要地址(1,需要,2,不需要) */
    private Integer needsAddress;
    
    /** 对应平台类型，自增长 */
    private Integer typeIndex;
    
    /** 类型拆解项 */
    private String typeDetail;
    
    /** 发布人 */
    private String publishUser;
    
    /** 创建时间 */
    private Date createTime;
    
    /** 更新时间 */
    private Date updateTime;
    
    /** 状态：0默认，1管理员删除，2用户删除 */
    private Integer dataStatus;
    
    /**
     * 设置项目类型ID
     *
     * @param projectTypeId 项目类型ID
     */
    public void setProjectTypeId(String projectTypeId) {
        this.projectTypeId = projectTypeId;
    }
    
    /**
     * 获取项目类型ID
     *
     * @return 项目类型ID
     */
    public String getProjectTypeId() {
        return projectTypeId;
    }
    
    /**
     * 设置项目类型名称
     *
     * @param projectTypeName 项目类型名称
     */
    public void setProjectTypeName(String projectTypeName) {
        this.projectTypeName = projectTypeName;
    }
    
    /**
     * 获取项目类型名称
     *
     * @return 项目类型名称
     */
    public String getProjectTypeName() {
        return projectTypeName;
    }
    
    /**
     * 设置是否需要地址(1,需要,2,不需要)
     *
     * @param needsAddress 是否需要地址(1,需要,2,不需要)
     */
    public void setNeedsAddress(Integer needsAddress) {
        this.needsAddress = needsAddress;
    }
    
    /**
     * 获取是否需要地址(1,需要,2,不需要)
     *
     * @return 是否需要地址(1,需要,2,不需要)
     */
    public Integer getNeedsAddress() {
        return needsAddress;
    }
    
    /**
     * 设置对应平台类型，自增长
     *
     * @param typeIndex 对应平台类型，自增长
     */
    public void setTypeIndex(Integer typeIndex) {
        this.typeIndex = typeIndex;
    }
    
    /**
     * 获取对应平台类型，自增长
     *
     * @return 对应平台类型，自增长
     */
    public Integer getTypeIndex() {
        return typeIndex;
    }
    
    /**
     * 获取类型拆解项
     *
     * @return 类型拆解项
     */
    public String getTypeDetail() {
        return typeDetail;
    }
    
    /**
     * 设置类型拆解项
     *
     * @param typeDetail 类型拆解项
     */
    public void setTypeDetail(String typeDetail) {
        this.typeDetail = typeDetail;
    }
    
    /**
     * 设置发布人
     *
     * @param publishUser 发布人
     */
    public void setPublishUser(String publishUser) {
        this.publishUser = publishUser;
    }
    
    /**
     * 获取发布人
     *
     * @return 发布人
     */
    public String getPublishUser() {
        return publishUser;
    }
    
    /**
     * 设置创建时间
     *
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    
    /**
     * 获取创建时间
     *
     * @return 创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }
    
    /**
     * 设置更新时间
     *
     * @param updateTime 更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    
    /**
     * 获取更新时间
     *
     * @return 更新时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }
    
    /**
     * 设置状态：0默认，1管理员删除，2用户删除
     *
     * @param dataStatus 状态：0默认，1管理员删除，2用户删除
     */
    public void setDataStatus(Integer dataStatus) {
        this.dataStatus = dataStatus;
    }
    
    /**
     * 获取状态：0默认，1管理员删除，2用户删除
     *
     * @return 状态：0默认，1管理员删除，2用户删除
     */
    public Integer getDataStatus() {
        return dataStatus;
    }
    
    /**
     * 检查字段长度是否超长，检查非空字段是否有值
     *
     * @return 检查提示信息，为null时表示检查通过
     */
    public String valid() {
        if (StringUtils.isBlank(projectTypeName)) {
            return "项目类型名称不能为空";
        }

        if (StringUtils.isBlank(typeDetail)) {
            return "类型拆解项不能为空 ";
        }
        
        return null;
    }
}
